class gmm
{
  public:
    
    
    inline gmm( const mat& in_means, const mat& in_covs, const vec& in_weights );
    inline gmm( const char *name );
    
    inline double         likelihood( const vec& x );
    inline double     log_likelihood( const vec& x );
    inline double avg_log_likelihood( const mat& X );
    
    inline void 	save_model( const char* name );
    inline void 	load_model( const char *name );
    
  private:
    
    
    mat means;
    mat covs;
    vec weights;
    
    
    inline double calc_gauss_function(const vec& xn, const uword gi); 
};